#!/bin/bash

MUTTDIR=$(dirname $0)

(cd $MUTTDIR && ./check_sec.sh) || exit 1

if [ -f $MUTTDIR/doc/manual.xml ] ; then
  ( cd $MUTTDIR/doc/ && make validate ) || exit 1
fi

lrev=$(hg log --limit 1 --template '{rev}' $MUTTDIR/ChangeLog)
trev=$(hg tip --template '{rev}')
if [ $lrev = $trev ]
then
  exec hg commit "$@"
fi

# Include ChangeLog if given any explicit file names
i=0
while [[ $i -lt $# ]]
do
  i=$((i+1))
  case "${!i}" in
    # no-argument options
    -A) continue ;;
    # one-argument options
    -?) i=$((i+1)); continue ;;
    # one-argument options with no space
    -*) continue ;;
    *) cl=$MUTTDIR/ChangeLog ;;
  esac
done

{
  hg log --no-merges --style=$MUTTDIR/hg-changelog-map -r tip:$lrev | sed 's#ChangeLog, ##' 
  hg cat $MUTTDIR/ChangeLog
} > $MUTTDIR/ChangeLog
${VISUAL:-${EDITOR:-vi}} $MUTTDIR/ChangeLog

hg commit "$@" $cl
